home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / short22.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  25.7 KB  |  922 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "short.h"
  9. T0* r880add_comment(T880* C,T0* a1){
  10. T0* R=NULL;
  11. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  12. R=(T0*)C;
  13. }
  14.  else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
  15. R=(T0*)C;
  16. }
  17. else {
  18. {T59*n=malloc(sizeof(*n));
  19. *n=M59;
  20. r59make(n,(T0*)C,a1);
  21. R=(T0*)n;
  22. }
  23. }
  24. /*FI*/}
  25. /*FI*/return R;
  26. }
  27. /*No:E_LOOP.fz_is_not_boolean*/
  28. void r880make(T880* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
  29. C->_start_position=a1;
  30. C->_initialize=a2;
  31. C->_invariant_clause=a3;
  32. C->_variant_clause=a4;
  33. C->_until_expression=a5;
  34. C->_loop_body=a6;
  35. }
  36. /*No:E_LOOP.nb_errors*/
  37. /*No:E_LOOP.start_position*/
  38. /*No:E_LOOP.until_expression*/
  39. T0* r880to_runnable(T880* C,T0* a1){
  40. T0* R=NULL;
  41. int _loop_check=0;
  42. T0* _ue=NULL;
  43. _loop_check=r590loop_check(((T590*)(oBC364run_control)));
  44. /*IF*/if (((((T880*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  45. C->_run_compound=a1;
  46. /*IF*/if (((((T880*)C))->_initialize/*12*/)!=((void*)(NULL))) {
  47. C->_initialize=r592to_runnable(((T592*)((((T880*)C))->_initialize/*12*/)),r880current_type(C));
  48. /*IF*/if (((((T880*)C))->_initialize/*12*/)==((void*)(NULL))) {
  49. r880error((((T880*)C))->_start_position/*8*/,((T0*)ms4_880));
  50. }
  51. /*FI*/}
  52. /*FI*//*IF*/if ((_loop_check)&&(((((T880*)C))->_invariant_clause/*16*/)!=((void*)(NULL)))) {
  53. C->_invariant_clause=r213to_runnable(((T213*)((((T880*)C))->_invariant_clause/*16*/)),(((T592*)((T592*)a1)))->_current_type/*4*/);
  54. /*IF*/if (((((T880*)C))->_invariant_clause/*16*/)==((void*)(NULL))) {
  55. r880error((((T880*)C))->_start_position/*8*/,((T0*)ms5_880));
  56. }
  57. /*FI*/}
  58. /*FI*//*IF*/if ((_loop_check)&&(((((T880*)C))->_variant_clause/*20*/)!=((void*)(NULL)))) {
  59. C->_variant_clause=X856to_runnable((((T880*)C))->_variant_clause/*20*/,r880current_type(C));
  60. /*IF*/if (((((T880*)C))->_variant_clause/*20*/)==((void*)(NULL))) {
  61. r880error((((T880*)C))->_start_position/*8*/,((T0*)ms6_880));
  62. }
  63. /*FI*/}
  64. /*FI*/_ue=X662to_runnable((((T880*)C))->_until_expression/*24*/,r880current_type(C));
  65. /*IF*/if ((_ue)!=((void*)(NULL))) {
  66. /*IF*/if (!(X291is_boolean(X662result_type(_ue)))) {
  67. r880error(X662start_position(_ue),((T0*)ms7_880));
  68. r683add_type(X662result_type(_ue),((T0*)ms73_470));
  69. r683print_as_error(((T683*)(oBC364eh)));
  70. }
  71. /*FI*/C->_until_expression=_ue;
  72. }
  73. else {
  74. r880error((((T880*)C))->_start_position/*8*/,((T0*)ms8_880));
  75. }
  76. /*FI*//*IF*/if (((((T880*)C))->_loop_body/*28*/)!=((void*)(NULL))) {
  77. C->_loop_body=r592to_runnable(((T592*)((((T880*)C))->_loop_body/*28*/)),r880current_type(C));
  78. /*IF*/if (((((T880*)C))->_loop_body/*28*/)==((void*)(NULL))) {
  79. r880error((((T880*)C))->_start_position/*8*/,((T0*)ms9_880));
  80. }
  81. /*FI*/}
  82. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  83. R=(T0*)C;
  84. }
  85. /*FI*/}
  86. else {
  87. {T880*n=malloc(sizeof(*n));
  88. *n=M880;
  89. r880make(n,(((T880*)C))->_start_position/*8*/,(((T880*)C))->_initialize/*12*/,(((T880*)C))->_invariant_clause/*16*/,(((T880*)C))->_variant_clause/*20*/,(((T880*)C))->_until_expression/*24*/,(((T880*)C))->_loop_body/*28*/);
  90. R=(T0*)n;
  91. }
  92. R=r880to_runnable(((T880*)R),a1);
  93. }
  94. /*FI*/return R;
  95. }
  96. /*No:E_LOOP.variant_clause*/
  97. /*No:E_LOOP.invariant_clause*/
  98. /*No:E_LOOP.loop_body*/
  99. T0* r880current_type(T880* C){
  100. T0* R=NULL;
  101. /*IF*/if (((((T880*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  102. R=(((T592*)((T592*)((((T880*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  103. }
  104. /*FI*/return R;
  105. }
  106. /*No:E_LOOP.run_compound*/
  107. void r880error(T0* a1,T0* a2){
  108. r683add_position(a1);
  109. r683error(((T683*)(oBC364eh)),a2);
  110. }
  111. /*No:E_LOOP.end_mark_comment*/
  112. /*No:E_LOOP.initialize*/
  113. void r393short(T393* C,T0* a1,T0* a2,T0* a3,T0* a4){
  114. int _open_quote=0;
  115. char _c=0;
  116. T0* _l=NULL;
  117. int _j=0;
  118. int _i=0;
  119. _i=(((T52*)((T52*)((((T393*)C))->_list/*4*/))))->_lower/*12*/;
  120. while (!((_i)>((((T52*)((T52*)((((T393*)C))->_list/*4*/))))->_upper/*8*/))) {
  121. r580hook_or(((T580*)(oBC364short_print)),a1,a2);
  122. r580hook(((T580*)(oBC364short_print)),((T0*)ms1_393));
  123. _l=r52item(((T52*)((((T393*)C))->_list/*4*/)),_i);
  124. _j=1;
  125. while (!((_j)>((((T7*)((T7*)_l)))->_count/*4*/))) {
  126. _c=/*(IRF4.6item*/((((T7*)((T7*)_l)))->_storage/*0*/)[(_j)-(1)]/*)*/;
  127. {int z1=_c;
  128.  
  129. if((95==z1)){
  130. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms2_393),((T0*)ms3_393));
  131. }
  132.  else 
  133. if((96==z1)){
  134. _open_quote=1;
  135. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms4_393),((T0*)ms5_393));
  136. }
  137.  else 
  138. if((39==z1)){
  139. /*IF*/if (_open_quote) {
  140. _open_quote=0;
  141. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_393),((T0*)ms7_393));
  142. }
  143. else {
  144. /*[IRF3.6a_character*/{char b1=_c;
  145. /*[IRF3.6put_character*/{T830* C2=((T830*)(oBC1std_output));
  146. char c1=b1;
  147. putc(c1,((FILE*)(stdout)));
  148. }/*]*/
  149. }/*]*/
  150. }
  151. /*FI*/}
  152.  else{/*[IRF3.6a_character*/{char b1=_c;
  153. /*[IRF3.6put_character*/{T830* C2=((T830*)(oBC1std_output));
  154. char c1=b1;
  155. putc(c1,((FILE*)(stdout)));
  156. }/*]*/
  157. }/*]*/
  158. }}
  159. _j=(_j)+(1);
  160. }
  161. r580hook(((T580*)(oBC364short_print)),((T0*)ms8_393));
  162. r580hook_or(((T580*)(oBC364short_print)),a3,a4);
  163. _i=(_i)+(1);
  164. }
  165. }
  166. void r393good_end(T393* C,T0* a1){
  167. /*IF*/if (!(r7has_string(((T7*)(r52item(((T52*)((((T393*)C))->_list/*4*/)),1))),(((T451*)((T451*)a1)))->_to_string/*0*/))) {
  168. r683add_position((((T451*)((T451*)a1)))->_start_position/*4*/);
  169. r393warning((((T393*)C))->_start_position/*0*/,((T0*)ms10_393));
  170. }
  171. /*FI*/}
  172. void r393make(T393* C,T0* a1,T0* a2){
  173. C->_start_position=a1;
  174. C->_list=a2;
  175. }
  176. /*No:COMMENT.start_position*/
  177. /*No:COMMENT.list*/
  178. /*No:COMMENT.count*/
  179. /*No:COMMENT.add_last*/
  180. void r393append(T393* C,T0* a1){
  181. int _i=0;
  182. _i=1;
  183. while (!((_i)>((((T52*)((T52*)((((T393*)((T393*)a1)))->_list/*4*/))))->_upper/*8*/))) {
  184. /*[IRF3.5add_last*/r52add_last(((T52*)((((T393*)C))->_list/*4*/)),r52item(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)),_i));
  185. /*]*/
  186. _i=(_i)+(1);
  187. }
  188. }
  189. void r393warning(T0* a1,T0* a2){
  190. r683add_position(a1);
  191. r683warning(((T683*)(oBC364eh)),a2);
  192. }
  193. void r723short(T723* C){
  194. X361short((((T723*)C))->_name/*4*/);
  195. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms2_723),((T0*)ms3_723));
  196. X291short(/*X361*/((T0*)(((T886*)((T886*)((((T723*)C))->_name/*4*/))))->_result_type/*20*/));
  197. }
  198. void r723make(T723* C,T0* a1,T0* a2){
  199. C->_name=a1;
  200. /*X361*//*[IRF3.3set_result_type*/((((T886*)(((T886*)((((T723*)C))->_name/*4*/)))))->_result_type)=(a2);
  201. /*]*/
  202. }
  203. /*No:DECLARATION_1.name*/
  204. void r723append_in(T723* C,T0* a1){
  205. X535add_last(a1,(((T723*)C))->_name/*4*/);
  206. }
  207. /*No:DECLARATION_1.count*/
  208. /*No:INDEX_LIST.make*/
  209. /*No:INDEX_LIST.list*/
  210. void r31short(T31* C){
  211. int _i=0;
  212. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms2_31),((T0*)ms3_31));
  213. _i=1;
  214. while (!((_i)>((((T382*)((T382*)((((T31*)C))->_list/*8*/))))->_upper/*8*/))) {
  215. X411short(r382item(((T382*)((((T31*)C))->_list/*8*/)),_i));
  216. _i=(_i)+(1);
  217. /*IF*/if ((_i)<=((((T382*)((T382*)((((T31*)C))->_list/*8*/))))->_upper/*8*/)) {
  218. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms4_31),((T0*)ms5_31));
  219. }
  220. /*FI*/}
  221. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_31),((T0*)ms7_31));
  222. }
  223. void r31make(T31* C,T0* a1,T0* a2){
  224. T0* _an2=NULL;
  225. int _rank=0;
  226. int _i=0;
  227. T0* _tla2=NULL;
  228. T0* _tla=NULL;
  229. T0* _tlf=NULL;
  230. T0* _an=NULL;
  231. r31standard_make(C,a1,a2);
  232. _i=(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/;
  233. while (!((_i)==(0))) {
  234. _an=r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i);
  235. _tlf=(((T873*)((T873*)_an)))->_result_type/*20*/;
  236. if(NULL!=(_tlf))switch(((T0*)_tlf)->id) {
  237. case 648: 
  238. break;
  239. default:
  240. _tlf=NULL;
  241. };/*IF*/if ((_tlf)!=((void*)(NULL))) {
  242. _rank=r31rank_of(C,X776to_string((((T648*)((T648*)_tlf)))->_like_what/*12*/));
  243. /*IF*/if ((_rank)==(_i)) {
  244. r683add_position((((T648*)((T648*)_tlf)))->_start_position/*4*/);
  245. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms64_470);
  246. r683fatal_error(((T683*)(oBC364eh)),b1);
  247. }/*]*/
  248. }
  249.  else if ((_rank)>(0)) {
  250. {T886*n=malloc(sizeof(*n));
  251. *n=M886;
  252. r886refer_to(n,X776start_position((((T648*)((T648*)_tlf)))->_like_what/*12*/),(T0*)C,_rank);
  253. _an2=(T0*)n;
  254. }
  255. {T239*n=malloc(sizeof(*n));
  256. *n=M239;
  257. r239make(n,(((T648*)((T648*)_tlf)))->_start_position/*4*/,_an2);
  258. _tla=(T0*)n;
  259. }
  260. /*[IRF3.3set_result_type*/((((T873*)(((T873*)_an))))->_result_type)=(_tla);
  261. /*]*/
  262. }
  263. /*FI*/}
  264. /*FI*/_i=(_i)-(1);
  265. }
  266. /*IF*/if (r590all_check(((T590*)(oBC364run_control)))) {
  267. _i=(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/;
  268. while (!((_i)==(0))) {
  269. _tla=(((T873*)((T873*)(r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i)))))->_result_type/*20*/;
  270. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  271. case 239: 
  272. break;
  273. default:
  274. _tla=NULL;
  275. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  276. _rank=r31rank_of(C,(((T886*)((T886*)((((T239*)((T239*)_tla)))->_like_what/*12*/))))->_to_string/*8*/);
  277. _tla2=(((T873*)((T873*)(r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_rank)))))->_result_type/*20*/;
  278. if(NULL!=(_tla2))switch(((T0*)_tla2)->id) {
  279. case 239: 
  280. break;
  281. default:
  282. _tla2=NULL;
  283. };/*IF*/if ((_tla2)!=((void*)(NULL))) {
  284. r683add_position((((T239*)((T239*)_tla)))->_start_position/*4*/);
  285. r683add_position((((T239*)((T239*)_tla2)))->_start_position/*4*/);
  286. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms64_470);
  287. r683fatal_error(((T683*)(oBC364eh)),b1);
  288. }/*]*/
  289. }
  290. /*FI*/}
  291. /*FI*/_i=(_i)-(1);
  292. }
  293. }
  294. /*FI*/}
  295. /*No:FORMAL_ARG_LIST.name*/
  296. /*No:FORMAL_ARG_LIST.nb_errors*/
  297. T0* r31type(T31* C,int a1){
  298. T0* R=NULL;
  299. R=(((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),a1)/*)*/))))->_result_type/*20*/;
  300. return R;
  301. }
  302. void r31standard_make(T31* C,T0* a1,T0* a2){
  303. int _actual_count=0;
  304. int _il=0;
  305. C->_start_position=a1;
  306. C->_list=a2;
  307. _il=1;
  308. while (!((_il)>((((T382*)((T382*)((((T31*)C))->_list/*8*/))))->_upper/*8*/))) {
  309. _actual_count=(_actual_count)+(X411count(r382item(((T382*)((((T31*)C))->_list/*8*/)),_il)));
  310. _il=(_il)+(1);
  311. }
  312. {T65*n=malloc(sizeof(*n));
  313. *n=M65;
  314. r65make(n,1,_actual_count);
  315. C->_flat_list=(T0*)n;
  316. }
  317. _il=1;
  318. while (!((_il)>((((T382*)((T382*)((((T31*)C))->_list/*8*/))))->_upper/*8*/))) {
  319. X411append_in(r382item(((T382*)((((T31*)C))->_list/*8*/)),_il),(T0*)C);
  320. _il=(_il)+(1);
  321. }
  322. }
  323. /*No:FORMAL_ARG_LIST.start_position*/
  324. T0* r31to_runnable(T31* C,T0* a1){
  325. T0* R=NULL;
  326. T0* _n2=NULL;
  327. T0* _n1=NULL;
  328. int _i=0;
  329. /*IF*/if (((((T31*)C))->_current_type/*16*/)==((void*)(NULL))) {
  330. C->_current_type=a1;
  331. R=(T0*)C;
  332. _i=(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/;
  333. while (!(((_i)==(0))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  334. _n1=r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i);
  335. _n2=r873to_runnable(((T873*)_n1),a1);
  336. /*IF*/if ((_n2)==((void*)(NULL))) {
  337. r31error((((T873*)((T873*)_n1)))->_start_position/*12*/,((T0*)ms3_535));
  338. }
  339.  else if ((_n1)!=((void*)(_n2))) {
  340. /*[IRF3.6put*/{T65* C1=((T65*)((((T31*)C))->_flat_list/*12*/));
  341. T0* b1=_n2;
  342. int b2=_i;
  343. ((((T65*)C1))->_storage/*4*/)[(b2)-((((T65*)C1))->_lower/*16*/)]=(b1);
  344. }/*]*/
  345. }
  346. /*FI*/r873name_clash(((T873*)_n2));
  347. _i=(_i)-(1);
  348. }
  349. }
  350. else {
  351. {T31*n=malloc(sizeof(*n));
  352. *n=M31;
  353. r31runnable_from_current(n,(T0*)C,a1);
  354. R=(T0*)n;
  355. }
  356. }
  357. /*FI*/return R;
  358. }
  359. /*No:FORMAL_ARG_LIST.em1*/
  360. /*No:FORMAL_ARG_LIST.list*/
  361. int r31rank_of(T31* C,T0* a1){
  362. int R=0;
  363. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  364. while (!(((R)==(0))||((a1)==((void*)((((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),R)/*)*/))))->_to_string/*8*/))))) {
  365. R=(R)-(1);
  366. }
  367. return R;
  368. }
  369. /*No:FORMAL_ARG_LIST.current_type*/
  370. int r31is_a_in(T31* C,T0* a1,T0* a2){
  371. int R=0;
  372. T0* _t2=NULL;
  373. T0* _t1=NULL;
  374. int _i=0;
  375. /*IF*/if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)a1)))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  376. r683add_position((((T31*)((T31*)a1)))->_start_position/*4*/);
  377. r31error((((T31*)C))->_start_position/*4*/,((T0*)ms8_31));
  378. }
  379. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  380. R=1;
  381. _i=1;
  382. while (!((!(R))||((_i)>((((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/)))) {
  383. _t1=r31type(C,_i);
  384. _t2=r31type(((T31*)a1),_i);
  385. /*IF*/if (!(X291is_a_in(_t1,_t2,a2))) {
  386. R=0;
  387. r683print_as_error(((T683*)(oBC364eh)));
  388. r683add_position(X291start_position(_t1));
  389. r683add_position(X291start_position(_t2));
  390. /*[IRF3.6append*/{T0* b1=((T0*)ms9_31);
  391. r7append(((T7*)(oBC683explanation)),b1);
  392. }/*]*/
  393. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  394. r7append(((T7*)(oBC683explanation)),b1);
  395. }/*]*/
  396. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  397. }
  398. /*FI*/_i=(_i)+(1);
  399. }
  400. }
  401. /*FI*/return R;
  402. }
  403. /*No:FORMAL_ARG_LIST.fz_cad*/
  404. /*No:FORMAL_ARG_LIST.fz_dot*/
  405. void r31runnable_from_current(T31* C,T0* a1,T0* a2){
  406. T0* _n2=NULL;
  407. T0* _n1=NULL;
  408. int _i=0;
  409. C->_start_position=(((T31*)((T31*)a1)))->_start_position/*4*/;
  410. C->_list=(((T31*)((T31*)a1)))->_list/*8*/;
  411. C->_current_type=a2;
  412. C->_flat_list=r65twin(((T65*)((((T31*)((T31*)a1)))->_flat_list/*12*/)));
  413. _i=(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/;
  414. while (!((_i)==(0))) {
  415. _n1=r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i);
  416. _n2=r873to_runnable(((T873*)_n1),a2);
  417. /*IF*/if ((_n2)==((void*)(NULL))) {
  418. r31error((((T873*)((T873*)_n1)))->_start_position/*12*/,((T0*)ms3_535));
  419. }
  420. /*FI*//*[IRF3.6put*/{T65* C1=((T65*)((((T31*)C))->_flat_list/*12*/));
  421. T0* b1=_n2;
  422. int b2=_i;
  423. ((((T65*)C1))->_storage/*4*/)[(b2)-((((T65*)C1))->_lower/*16*/)]=(b1);
  424. }/*]*/
  425. _i=(_i)-(1);
  426. }
  427. }
  428. void r31add_last(T31* C,T0* a1){
  429. T0* _n2=NULL;
  430. int _i=0;
  431. _i=1;
  432. while (!((r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i))==((void*)(NULL)))) {
  433. _n2=r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i);
  434. /*IF*/if (((((T873*)((T873*)_n2)))->_to_string/*8*/)==((void*)((((T873*)((T873*)a1)))->_to_string/*8*/))) {
  435. r683add_position((((T873*)((T873*)a1)))->_start_position/*12*/);
  436. r683add_position((((T873*)((T873*)_n2)))->_start_position/*12*/);
  437. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_535);
  438. r683fatal_error(((T683*)(oBC364eh)),b1);
  439. }/*]*/
  440. }
  441. /*FI*/_i=(_i)+(1);
  442. }
  443. /*[IRF3.6put*/{T65* C1=((T65*)((((T31*)C))->_flat_list/*12*/));
  444. T0* b1=a1;
  445. int b2=_i;
  446. ((((T65*)C1))->_storage/*4*/)[(b2)-((((T65*)C1))->_lower/*16*/)]=(b1);
  447. }/*]*/
  448. /*[IRF3.3set_rank*/((((T873*)(((T873*)a1))))->_rank)=(_i);
  449. /*]*/
  450. }
  451. void r31error(T0* a1,T0* a2){
  452. r683add_position(a1);
  453. r683error(((T683*)(oBC364eh)),a2);
  454. }
  455. /*No:FORMAL_ARG_LIST.count*/
  456. /*No:FORMAL_ARG_LIST.fatal_error*/
  457. /*No:FORMAL_ARG_LIST.flat_list*/
  458. int r46gives_permission_to_any(T46* C){
  459. int R=0;
  460. int _i=0;
  461. _i=(((T901*)((T901*)((((T46*)C))->_list/*0*/))))->_upper/*8*/;
  462. while (!((R)||((_i)==(0)))) {
  463. R=((((T451*)((T451*)(r901item(((T901*)((((T46*)C))->_list/*0*/)),_i)))))->_to_string/*0*/)==((void*)(((T0*)ms1_473)));
  464. _i=(_i)-(1);
  465. }
  466. return R;
  467. }
  468. void r46merge(T46* C,T0* a1,T0* a2){
  469. T0* _a=NULL;
  470. T0* _cn=NULL;
  471. int _i=0;
  472. C->_list=r901twin(((T901*)((((T46*)((T46*)a1)))->_list/*0*/)));
  473. _a=(((T46*)((T46*)a2)))->_list/*0*/;
  474. _i=(((T901*)((T901*)_a)))->_upper/*8*/;
  475. while (!((_i)==(0))) {
  476. _cn=r901item(((T901*)_a),_i);
  477. /*IF*/if (!(r46gives_permission_to(C,_cn))) {
  478. r901add_last(((T901*)((((T46*)C))->_list/*0*/)),_cn);
  479. }
  480. /*FI*/_i=(_i)-(1);
  481. }
  482. }
  483. void r46make(T46* C,T0* a1){
  484. int _i2=0;
  485. int _i=0;
  486. C->_list=a1;
  487. _i=(((T901*)((T901*)((((T46*)C))->_list/*0*/))))->_upper/*8*/;
  488. while (!((_i)==(0))) {
  489. _i2=r46index_of(C,r901item(((T901*)((((T46*)C))->_list/*0*/)),_i));
  490. /*IF*/if ((_i2)!=(_i)) {
  491. r683add_position((((T451*)((T451*)(r901item(((T901*)((((T46*)C))->_list/*0*/)),_i2)))))->_start_position/*4*/);
  492. r46warning((((T451*)((T451*)(r901item(((T901*)((((T46*)C))->_list/*0*/)),_i)))))->_start_position/*4*/,((T0*)ms1_46));
  493. }
  494. /*FI*/_i=(_i)-(1);
  495. }
  496. }
  497. int r46gives_permission_to(T46* C,T0* a1){
  498. int R=0;
  499. int _i=0;
  500. /*IF*/if ((r46index_of(C,a1))>(0)) {
  501. R=1;
  502. }
  503. else {
  504. _i=(((T901*)((T901*)((((T46*)C))->_list/*0*/))))->_upper/*8*/;
  505. while (!((R)||((_i)==(0)))) {
  506. R=r451is_subclass_of(((T451*)a1),r901item(((T901*)((((T46*)C))->_list/*0*/)),_i));
  507. _i=(_i)-(1);
  508. }
  509. }
  510. /*FI*/return R;
  511. }
  512. /*No:CLASS_NAME_LIST.list*/
  513. int r46index_of(T46* C,T0* a1){
  514. int R=0;
  515. T0* _to_string=NULL;
  516. _to_string=(((T451*)((T451*)a1)))->_to_string/*0*/;
  517. R=(((T901*)((T901*)((((T46*)C))->_list/*0*/))))->_upper/*8*/;
  518. while (!(((R)==(0))||((_to_string)==((void*)((((T451*)((T451*)(r901item(((T901*)((((T46*)C))->_list/*0*/)),R)))))->_to_string/*0*/))))) {
  519. R=(R)-(1);
  520. }
  521. return R;
  522. }
  523. /*No:CLASS_NAME_LIST.us_any*/
  524. void r46warning(T0* a1,T0* a2){
  525. r683add_position(a1);
  526. r683warning(((T683*)(oBC364eh)),a2);
  527. }
  528. /*No:TYPE_BIT_REF.short*/
  529. /*No:TYPE_BIT_REF.has_creation*/
  530. /*No:TYPE_BIT_REF.is_anchored*/
  531. /*No:TYPE_BIT_REF.is_array*/
  532. int r963is_a(T963* C,T0* a1){
  533. int R=0;
  534. /*IF*/if (((((T963*)C))->_run_time_mark/*12*/)==((void*)(X291run_time_mark(a1)))) {
  535. R=1;
  536. }
  537. else {
  538. R=r605is_subclass_of(((T605*)(r963base_class(C))),X291base_class(a1));
  539. /*IF*/if (!(R)) {
  540. r683add_type((T0*)C,((T0*)ms71_470));
  541. r683add_type(a1,((T0*)ms67_470));
  542. }
  543. /*FI*/}
  544. /*FI*/return R;
  545. }
  546. /*No:TYPE_BIT_REF.is_pointer*/
  547. /*No:TYPE_BIT_REF.run_type*/
  548. /*No:TYPE_BIT_REF.is_string*/
  549. /*No:TYPE_BIT_REF.is_like_feature*/
  550. /*No:TYPE_BIT_REF.is_like_current*/
  551. void r963make(T963* C,T0* a1){
  552. C->_type_bit=a1;
  553. C->_run_time_mark=((T0*)ms1_963);
  554. r2append_in(X609nb((((T963*)C))->_type_bit/*4*/),(((T963*)C))->_run_time_mark/*12*/);
  555. r7append(((T7*)((((T963*)C))->_run_time_mark/*12*/)),((T0*)ms2_963));
  556. C->_run_time_mark=r902item((((T963*)C))->_run_time_mark/*12*/);
  557. C->_written_mark=(((T963*)C))->_run_time_mark/*12*/;
  558. }
  559. T0* r963type_any(void){
  560. if (fBC364type_any==0){
  561. T0* R=NULL;
  562. fBC364type_any=1;
  563. {T669*n=malloc(sizeof(*n));
  564. *n=M669;
  565. r669make(n,NULL);
  566. R=(T0*)n;
  567. }
  568. oBC364type_any=R;}
  569. return oBC364type_any;}
  570. /*No:TYPE_BIT_REF.start_position*/
  571. /*No:TYPE_BIT_REF.fz_inako*/
  572. /*No:TYPE_BIT_REF.is_character*/
  573. /*No:TYPE_BIT_REF.written_mark*/
  574. /*No:TYPE_BIT_REF.is_run_type*/
  575. /*No:TYPE_BIT_REF.to_runnable*/
  576. T0* r963generic_list(T963* C){
  577. T0* R=NULL;
  578. r963fatal_error_generic_list(C);
  579. return R;
  580. }
  581. /*No:TYPE_BIT_REF.is_formal_generic*/
  582. /*No:TYPE_BIT_REF.is_real*/
  583. /*No:TYPE_BIT_REF.is_bit*/
  584. void r963fatal_error_generic_list(T963* C){
  585. r683add_type((T0*)C,((T0*)ms12_291));
  586. r683print_as_fatal_error(((T683*)(oBC364eh)));
  587. }
  588. T0* r963smallest_ancestor(T963* C,T0* a1){
  589. T0* R=NULL;
  590. /*IF*/if (((((T963*)C))->_run_time_mark/*12*/)==((void*)(X291run_time_mark(a1)))) {
  591. R=(T0*)C;
  592. }
  593. else {
  594. R=r963type_any();
  595. }
  596. /*FI*/return R;
  597. }
  598. /*No:TYPE_BIT_REF.is_boolean*/
  599. /*No:TYPE_BIT_REF.is_double*/
  600. T0* r963run_class(T963* C){
  601. T0* R=NULL;
  602. R=r604run_class(/*(IRF4.4run_type*/((T0*)(C))/*)*/);
  603. return R;
  604. }
  605. /*No:TYPE_BIT_REF.run_time_mark*/
  606. int r963is_a_in(T963* C,T0* a1,T0* a2){
  607. int R=0;
  608. T0* _ct=NULL;
  609. T0* _t2=NULL;
  610. T0* _t1=NULL;
  611. /*IF*/if (((((T963*)C))->_written_mark/*8*/)==((void*)(X291written_mark(a1)))) {
  612. R=1;
  613. }
  614. else {
  615. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  616. _t1=/*(IRF4.4to_runnable*/((T0*)(C))/*)*/;
  617. _t2=X291to_runnable(a1,_ct);
  618. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  619. R=1;
  620. }
  621. else {
  622. R=X291is_a(_t1,_t2);
  623. }
  624. /*FI*/}
  625. /*FI*/return R;
  626. }
  627. T0* r963look_up_for(T963* C,T0* a1,T0* a2){
  628. T0* R=NULL;
  629. R=r605look_up_for(((T605*)(r963base_class(C))),a1,a2);
  630. return R;
  631. }
  632. /*No:TYPE_BIT_REF.expanded_initializer*/
  633. /*No:TYPE_BIT_REF.fz_dot*/
  634. /*No:TYPE_BIT_REF.is_generic*/
  635. /*No:TYPE_BIT_REF.used_as_reference*/
  636. /*No:TYPE_BIT_REF.us_bit_n_ref*/
  637. /*No:TYPE_BIT_REF.type_bit*/
  638. /*No:TYPE_BIT_REF.is_reference*/
  639. T0* r963base_class(T963* C){
  640. T0* R=NULL;
  641. T0* _bcn=NULL;
  642. _bcn=r963base_class_name();
  643. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  644. R=r451base_class(((T451*)_bcn));
  645. }
  646. else {
  647. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  648. r7append(((T7*)(oBC683explanation)),b1);
  649. }/*]*/
  650. r683add_type((T0*)C,((T0*)ms67_470));
  651. r683print_as_fatal_error(((T683*)(oBC364eh)));
  652. }
  653. /*FI*/return R;
  654. }
  655. /*No:TYPE_BIT_REF.short_hook*/
  656. /*No:TYPE_BIT_REF.is_any*/
  657. int fBC963base_class_name=0;
  658. T0*oBC963base_class_name=NULL;
  659. T0* r963base_class_name(void){
  660. if (fBC963base_class_name==0){
  661. T0* R=NULL;
  662. fBC963base_class_name=1;
  663. {T451*n=malloc(sizeof(*n));
  664. *n=M451;
  665. r451make(n,((T0*)ms5_473),NULL);
  666. R=(T0*)n;
  667. }
  668. oBC963base_class_name=R;}
  669. return oBC963base_class_name;}
  670. /*No:TYPE_BIT_REF.is_expanded*/
  671. /*No:TYPE_BIT_REF.is_basic_eiffel_expanded*/
  672. /*No:TYPE_BIT_REF.is_none*/
  673. /*No:TYPE_BIT_REF.is_integer*/
  674. void r707short(T707* C){
  675. r580hook(((T580*)(oBC364short_print)),((T0*)ms1_291));
  676. /*[IRF3.6short_hook*/{T707* C1=C;
  677. r580a_class_name(((T580*)(oBC364short_print)),(((T707*)C1))->_base_class_name/*4*/);
  678. }/*]*/
  679. r580hook(((T580*)(oBC364short_print)),((T0*)ms2_291));
  680. }
  681. int r707has_creation(T707* C,T0* a1){
  682. int R=0;
  683. r683add_position(X776start_position(a1));
  684. r707error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T707*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
  685. return R;
  686. }
  687. /*No:TYPE_BOOLEAN.is_anchored*/
  688. /*No:TYPE_BOOLEAN.is_array*/
  689. int r707is_a(T707* C,T0* a1){
  690. int R=0;
  691. /*IF*/if (X291is_boolean(a1)) {
  692. R=1;
  693. }
  694. else {
  695. R=r605is_subclass_of(((T605*)(r707base_class(C))),X291base_class(a1));
  696. /*IF*/if (R) {
  697. r707used_as_reference();
  698. }
  699. /*FI*/}
  700. /*FI*//*IF*/if (!(R)) {
  701. r683add_type((T0*)C,((T0*)ms71_470));
  702. r683add_type(a1,((T0*)ms67_470));
  703. }
  704. /*FI*/return R;
  705. }
  706. /*No:TYPE_BOOLEAN.run_type*/
  707. /*No:TYPE_BOOLEAN.is_pointer*/
  708. /*No:TYPE_BOOLEAN.is_string*/
  709. /*No:TYPE_BOOLEAN.is_like_feature*/
  710. /*No:TYPE_BOOLEAN.is_like_current*/
  711. void r707make(T707* C,T0* a1){
  712. {T451*n=malloc(sizeof(*n));
  713. *n=M451;
  714. r451make(n,((T0*)ms6_473),a1);
  715. C->_base_class_name=(T0*)n;
  716. }
  717. }
  718. /*No:TYPE_BOOLEAN.nb_errors*/
  719. /*No:TYPE_BOOLEAN.us_item*/
  720. void r707load_ref(T0* a1){
  721. T0* _rf=NULL;
  722. T0* _rc=NULL;
  723. T0* _cn=NULL;
  724. {T451*n=malloc(sizeof(*n));
  725. *n=M451;
  726. r451make(n,a1,NULL);
  727. _cn=(T0*)n;
  728. }
  729. _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
  730. r368set_at_run_time(((T368*)_rc));
  731. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms86_473));
  732. }
  733. int fBC707check_type=0;
  734. void r707check_type(T707* C){
  735. if (fBC707check_type==0){
  736. T0* _rc=NULL;
  737. T0* _bc=NULL;
  738. fBC707check_type=1;
  739. _bc=r707base_class(C);
  740. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  741. _rc=r707run_class(C);
  742. }
  743. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  744. /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
  745. r707error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T707*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_707));
  746. }
  747. /*FI*/}
  748. /*FI*/}}
  749. /*No:TYPE_BOOLEAN.start_position*/
  750. /*No:TYPE_BOOLEAN.fz_inako*/
  751. /*No:TYPE_BOOLEAN.is_character*/
  752. T0* r707written_mark(void){
  753. T0* R=NULL;
  754. R=((T0*)ms6_473);
  755. return R;
  756. }
  757. /*No:TYPE_BOOLEAN.is_run_type*/
  758. T0* r707to_runnable(T707* C,T0* a1){
  759. T0* R=NULL;
  760. R=(T0*)C;
  761. r707check_type(C);
  762. return R;
  763. }
  764. T0* r707generic_list(T707* C){
  765. T0* R=NULL;
  766. r707fatal_error_generic_list(C);
  767. return R;
  768. }
  769. /*No:TYPE_BOOLEAN.is_formal_generic*/
  770. /*No:TYPE_BOOLEAN.is_real*/
  771. /*No:TYPE_BOOLEAN.is_bit*/
  772. int fBC364type_boolean_ref=0;
  773. T0*oBC364type_boolean_ref=NULL;
  774. T0* r707type_boolean_ref(void){
  775. if (fBC364type_boolean_ref==0){
  776. T0* R=NULL;
  777. T0* _boolean_ref=NULL;
  778. fBC364type_boolean_ref=1;
  779. {T451*n=malloc(sizeof(*n));
  780. *n=M451;
  781. r451make(n,((T0*)ms7_473),NULL);
  782. _boolean_ref=(T0*)n;
  783. }
  784. {T657*n=malloc(sizeof(*n));
  785. *n=M657;
  786. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_boolean_ref);
  787. /*]*/
  788. R=(T0*)n;
  789. }
  790. oBC364type_boolean_ref=R;}
  791. return oBC364type_boolean_ref;}
  792. void r707fatal_error_generic_list(T707* C){
  793. r683add_type((T0*)C,((T0*)ms12_291));
  794. r683print_as_fatal_error(((T683*)(oBC364eh)));
  795. }
  796. T0* r707smallest_ancestor(T707* C,T0* a1){
  797. T0* R=NULL;
  798. T0* _rto=NULL;
  799. _rto=X291run_type(a1);
  800. /*IF*/if (X291is_boolean(_rto)) {
  801. R=(T0*)C;
  802. }
  803. else {
  804. R=r657smallest_ancestor(((T657*)(r707type_boolean_ref())),_rto);
  805. }
  806. /*FI*/return R;
  807. }
  808. /*No:TYPE_BOOLEAN.is_boolean*/
  809. /*No:TYPE_BOOLEAN.is_double*/
  810. T0* r707run_class(T707* C){
  811. T0* R=NULL;
  812. R=r604run_class((T0*)C);
  813. return R;
  814. }
  815. T0* r707run_time_mark(void){
  816. T0* R=NULL;
  817. R=((T0*)ms6_473);
  818. return R;
  819. }
  820. int r707is_a_in(T707* C,T0* a1,T0* a2){
  821. int R=0;
  822. T0* _ct=NULL;
  823. T0* _t2=NULL;
  824. T0* _t1=NULL;
  825. /*IF*/if ((r707written_mark())==((void*)(X291written_mark(a1)))) {
  826. R=1;
  827. }
  828. else {
  829. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  830. _t1=r707to_runnable(C,_ct);
  831. _t2=X291to_runnable(a1,_ct);
  832. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  833. R=1;
  834. }
  835. else {
  836. R=X291is_a(_t1,_t2);
  837. }
  838. /*FI*/}
  839. /*FI*/return R;
  840. }
  841. T0* r707look_up_for(T707* C,T0* a1,T0* a2){
  842. T0* R=NULL;
  843. R=r605look_up_for(((T605*)(r707base_class(C))),a1,a2);
  844. return R;
  845. }
  846. /*No:TYPE_BOOLEAN.us_boolean*/
  847. /*No:TYPE_BOOLEAN.expanded_initializer*/
  848. /*No:TYPE_BOOLEAN.fz_dot*/
  849. /*No:TYPE_BOOLEAN.is_generic*/
  850. int fBC707used_as_reference=0;
  851. void r707used_as_reference(void){
  852. if (fBC707used_as_reference==0){
  853. fBC707used_as_reference=1;
  854. r707load_ref(((T0*)ms7_473));
  855. }}
  856. /*No:TYPE_BOOLEAN.is_reference*/
  857. void r707error(T0* a1,T0* a2){
  858. r683add_position(a1);
  859. r683error(((T683*)(oBC364eh)),a2);
  860. }
  861. T0* r707base_class(T707* C){
  862. T0* R=NULL;
  863. T0* _bcn=NULL;
  864. _bcn=(((T707*)C))->_base_class_name/*4*/;
  865. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  866. R=r451base_class(((T451*)_bcn));
  867. }
  868. else {
  869. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  870. r7append(((T7*)(oBC683explanation)),b1);
  871. }/*]*/
  872. r683add_type((T0*)C,((T0*)ms67_470));
  873. r683print_as_fatal_error(((T683*)(oBC364eh)));
  874. }
  875. /*FI*/return R;
  876. }
  877. /*No:TYPE_BOOLEAN.short_hook*/
  878. /*No:TYPE_BOOLEAN.is_any*/
  879. /*No:TYPE_BOOLEAN.us_boolean_ref*/
  880. /*No:TYPE_BOOLEAN.base_class_name*/
  881. /*No:TYPE_BOOLEAN.is_expanded*/
  882. /*No:TYPE_BOOLEAN.is_basic_eiffel_expanded*/
  883. /*No:TYPE_BOOLEAN.is_none*/
  884. /*No:TYPE_BOOLEAN.is_integer*/
  885. /*No:COUNTER.value*/
  886. void r417increment(T417* C){
  887. C->_value=((((T417*)C))->_value/*0*/)+(1);
  888. }
  889. /*No:IFTHENLIST.make*/
  890. /*No:IFTHENLIST.nb_errors*/
  891. T0* r712to_runnable(T712* C,T0* a1){
  892. T0* R=NULL;
  893. int _i=0;
  894. /*IF*/if (((((T712*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  895. {T712*n=malloc(sizeof(*n));
  896. *n=M712;
  897. /*[IRF3.3make*/((((T712*)(n)))->_list)=(r948twin(((T948*)((((T712*)C))->_list/*0*/))));
  898. /*]*/
  899. R=(T0*)n;
  900. }
  901. R=r712to_runnable(((T712*)R),a1);
  902. }
  903. else {
  904. C->_run_compound=a1;
  905. _i=1;
  906. while (!(((_i)>((((T948*)((T948*)((((T712*)C))->_list/*0*/))))->_upper/*8*/))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  907. /*[IRF3.6put*/{T948* C1=((T948*)((((T712*)C))->_list/*0*/));
  908. T0* b1=r809to_runnable(((T809*)(r948item(((T948*)((((T712*)C))->_list/*0*/)),_i))),a1);
  909. int b2=_i;
  910. ((((T948*)C1))->_storage/*0*/)[(b2)-((((T948*)C1))->_lower/*12*/)]=(b1);
  911. }/*]*/
  912. _i=(_i)+(1);
  913. }
  914. R=(T0*)C;
  915. }
  916. /*FI*/return R;
  917. }
  918. /*No:IFTHENLIST.list*/
  919. /*No:IFTHENLIST.run_compound*/
  920. /*No:IFTHENLIST.add_last*/
  921.  
  922.